// js遍历对象的方式
/**
 * for...in
 * 借助for...in循环，能够遍历对象自身的可枚举属性以
 * 及继承的可枚举属性。
 * 需要使用hasOwnProperty()来判断i
 * 
 * Object.keys()
 * Object.keys()会返回一个由对象自身可枚举属性值组成的数组，
 * 可用于直接遍历属性值。
 * 
 * Object.entries()
 * Object.entries()会返回一个由对象自身可枚举属性的键值对
 * 数组组成的数组，利用它可以方便地遍历键值对。
 * 
 * Object.getOwnPropertyNames()
 * Object.getOwnPropertyNames()会返回一个由对象自身所有属性
 * （包括不可枚举属性，但不包括 Symbol 类型的属性）组成的数组。
 * 
 * Reflect.ownKeys()
 * Reflect.ownKeys()会返回一个由对象自身所有属性
 * （包括不可枚举属性和 Symbol 类型的属性）组成的数组。
 */
// 1.for...in
// const list = {
//     title:'橘子',
//     price:33,
//     context:'igerirur'
// }
// for ( const i in list ) {
//     if (list.hasOwnProperty(i)){
//         console.log(i + ':' + list[i]);
//     }
// }

// 2.Object.keys()
// const list = {
//     title: '橘子',
//     price: 33,
//     context: 'igerirur'
// }
// const arr = Object.keys(list).forEach(i => {
//     console.log(i+':'+list[i]);
// });
// console.log(arr);

// 3.Object.entries()
// const list = {
//     title: '橘子',
//     price: 33,
//     context: 'igerirur'
// }
// Object.entries(list).forEach(([key,value]) => {
//     console.log(key+':'+value);
// })

// 4.Object.values()
// const list = {
//     title: '橘子',
//     price: 33,
//     context: 'igerirur'
// }
// Object.values(list).forEach(i=>{
//     console.log(i);
// })

// 5.Object.getOwnPropertyNames()
const list = {
    title: '橘子',
    price: 33,
    context: 'igerirur'
}
const arr = Object.defineProperty(personalbar,'job',{
    value: 'Engineer',
    enumerable: false
})
Object.getOwnPropertyNames(list).forEach(key => {
    console.log()
})

console.log(arr);
